<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
//require("../Vendor/phpmailer/class.phpmailer.php");
App::import('Vendor', 'PHPMailer', array('file' => 'phpmailer/class.phpmailer.php'));
/**
 * Clientes Controller
 *
 * @property Cliente $Cliente
 */
class ClientesController extends AppController {
	
	
	public $name = 'Clientes';
	
	/**
	 * This controller does not use a model
	 *
	 * @var array
	 */
	//var $options;
	
	//public $uses = array('Dependente');
	
	public function sendEmail($to, $from, $subject, $attachments, $contratoID, $emailtext) {
	
	
		// Inicia a classe PHPMailer
		$mail = new PHPMailer();
	
		// Define os dados do servidor e tipo de conexão
		// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		$mail->IsSMTP(); // Define que a mensagem será SMTP
	
		$mail->SMTPAuth = true;
	
		$mail->SMTPSecure  = "tls";
		//$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
		$mail->Host = "mail.ita.locamail.com.br";
	
		$mail->Port       = 587;                   // set the SMTP port for the GMAIL
		//$mail->Username = "prevqualiti@gmail.com";
		//$mail->Password = "tmp.1010";
	
		$mail->Username = "theogenes.duarte@prevquali.com.br";
		$mail->Password = "prev16ccr";
	
		//$mail->SMTPDebug = true;
		//$mail->SMTPDebug = 2;
	
		// Define o remetente
		// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		$mail->From = $from; // Seu e-mail
		$mail->FromName = "PrevQuali"; // Seu nome
		//pr($to);
		// Define os destinatário(s)
		// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		for($i = 0; $i < sizeof($to); $i++) {
			$mail->AddAddress($to[$i]['email'], $to[$i]['nome']);
		}
		//$mail->AddAddress('theogenes.duarte@prevquali.com.br', 'teste');
		//$mail->AddAddress('teocomp@msn.com');
	
		//$mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia
		//$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta
	
		// Define os dados técnicos da Mensagem
		// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		$mail->IsHTML(true); // Define que o e-mail será enviado como HTML
		$mail->WordWrap = 50; // set word wrap
		//$mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)
		$mail->CharSet = 'utf-8';
	
		// Define a mensagem (Texto e Assunto)
		// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		$mail->Subject  = $subject; // Assunto da mensagem
		//$mail->Body = 'Este é o corpo da mensagem de teste, em <b>HTML</b>! <br /> <img src="http://i2.wp.com/blog.thiagobelem.net/wp-includes/images/smilies/icon_smile.gif?w=625" alt=":)" class="wp-smiley" width="15" height="15"> ';
		$mail->Body = $emailtext;
		//$mail->AltBody = 'Este é o corpo da mensagem de teste, em Texto Plano! \r\n <img src="http://i2.wp.com/blog.thiagobelem.net/wp-includes/images/smilies/icon_smile.gif?w=625" alt=":)" class="wp-smiley" width="15" height="15"> ';
	
		// Define os anexos (opcional)
		// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		for($i = 0; $i < sizeof($attachments); $i++) {
			$mail->AddAttachment($attachments[$i]['filepath'], $attachments[$i]['filename']);  // Insere um anexo
		}
		//$mail->AddAttachment("c:/temp/documento.pdf", "novo_nome.pdf");  // Insere um anexo
	
		// Envia o e-mail
		$enviado = $mail->Send();
	
		// Limpa os destinatários e os anexos
		$mail->ClearAllRecipients();
		$mail->ClearAttachments();
	
		// Exibe uma mensagem de resultado
		if ($enviado) {
			//echo "E-mail enviado com sucesso!";
			return true;
		} else {
			//echo "Não foi possível enviar o e-mail.<br /><br />";
			//echo "<b>Informações do erro:</b> <br />" . $mail->ErrorInfo;
			return false;
		}
	
	}

/**
 * index method
 *
 * @return void
 */
	//public $uses = array('Dependente');
	
	public function index() {
		$this->Cliente->recursive = 0;
		$this->Cliente->order = 'Cliente.nome ASC';
		$this->set('clientes', $this->paginate());
	}
	
	
/**
 * view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function view($id = null) {
		$this->Cliente->id = $id;
		if (!$this->Cliente->exists()) {
			throw new NotFoundException(__('Invalid cliente'));
		}
		$this->layout = 'saude';
		$this->set('cliente', $this->Cliente->read(null, $id));
	}
	


	public function showdata() {
	
		$cep = $_POST["cep"];
	
		if($cep != null) {
			$reg = simplexml_load_file("http://cep.republicavirtual.com.br/web_cep.php?formato=xml&cep=" . $cep);
			
			$result = (string) $reg->resultado;
			$rua     = (string) $reg->tipo_logradouro . ' ' . $reg->logradouro;
			$bairro  = (string) $reg->bairro;
			$cidade  = (string) $reg->cidade;
			$estado  = (string) $reg->uf;
			
			echo json_encode(array('status' => ($result == 1 ? true : false), 'rua' => $rua, 'bairro' => $bairro, 'cidade' => $cidade, 'estado' => $estado));
		}
	
		exit();
	}
	

/**
 * conclusao_adesao method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function conclusao_adesao($id = null) {
		$this->Cliente->id = $id;
		if (!$this->Cliente->exists()) {
			throw new NotFoundException(__('Invalid cliente'));
		}
		$this->layout = 'saude';
		$this->set('cliente', $this->Cliente->read(null, $id));
	}
	
/**
 * adesao method
 *
 * @return void
 */
	public function adesao() {
		
		$cliente_id = 0;
		
		if ($this->request->is('post')) {
			$this->Cliente->create();
			//pr($this->request->data);
			
			$data = explode('/', $_POST['datanasccliente']);
			//$iniciocobertura = $_POST['iniciocoberturacliente'];
			
			$dia = $data[0];
			$mes = $data[1];
			$ano = $data[2];
			
			$this->request->data['Cliente']['datanasc']['day'] = $dia;
			$this->request->data['Cliente']['datanasc']['month'] = $mes;
			$this->request->data['Cliente']['datanasc']['year'] = $ano;
			
			//pr('dia: '.$dia.' mes: '.$mes.' ano: '.$ano.' data: '.$this->request->data['Cliente']['datanasc']);
			
			if ($this->Cliente->save($this->request->data)) {
				//$this->Session->setFlash(__('The cliente has been saved'));
				$cliente_id = $this->Cliente->id;
				
				
				//-------------------------- save dependentes ---------------------------
				$num = (int)$_POST['numdependentescliente'];
				
				for($i = 1; $i <= $num; $i++) {
					$nome = $_POST['nomedependente'.$i];
					
					$data = explode('/', $_POST['datanascdependente'.$i]);	
					$dia = $data[0];
					$mes = $data[1];
					$ano = $data[2];
					$datanasc = array('day' => $dia, 'month' => $mes, 'year' => $ano);
					
					$genero = $_POST['generodependente'.$i];
					
					$parentesco_id = $_POST['parentescodependente'.$i];
					
					$estadocivil_id = $_POST['estadocivildependente'.$i];
					
					$cpf = $_POST['cpfdependente'.$i];
					
					$nomemae = $_POST['nomemaedependente'.$i];
					
					$this->loadModel('Dependente');
					$this->Dependente->create();
					
					$dependente = array('Dependente' => array('nome' => $nome, 'datanasc' => $datanasc, 'genero' => $genero, 'cpf' => $cpf,  'parentesco_id' => $parentesco_id, 'estadocivil_id' => $estadocivil_id, 'nomemae' => $nomemae, 'cliente_id' => $cliente_id));
					
					$this->Dependente->save($dependente);
				}
				
				//--------------------------- generate contrato -------------------------
				
				//$relat = new RelatCadastradosController();
				
				//$relat->report($cliente_id);
				
				$this->requestAction('/relat_cadastrados/report/'.$cliente_id);
				
				//------------------------------ include remententes ----------------------------
				$remet1 = $this->request->data['Cliente']['email'];
				$remet2 = $this->request->data['Cliente']['email2'];
				$remet3 = $_POST['emailcorretor'];
				$remet4 = $_POST['emailgestor'];
				
				$destinatarios = array(array('email' => $remet1, 'nome' => ''), array('email' => $remet3, 'nome' => ''), array('email' => $remet4, 'nome' => ''));
				
				if($remet2 != '') {
					$email2 = array('email' => $remet2, 'nome' => '');
					array_push($destinatarios, $email2);
				}
				
				$emailremetente = 'comercial1@prevquali.com.br';
				$assunto = 'Confirmação de Proposta';
				$anexos = array();
				
				$body = '<h1><b>Proposta Criada com sucesso!</b></h1>
						<div style="font-family:'."'Lucida Grande'".', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(0, 0, 0); line-height: normal; margin: 10px 25px;">
							<p>O Registro da sua proposta &eacute;&nbsp;<strong>'.$cliente_id.'</strong></p>
							<div>
								<p>Sua solicita&ccedil;&atilde;o foi enviada para confer&ecirc;ncia de dados e seguir&aacute; para cadastramento. Ap&oacute;s a confirma&ccedil;&atilde;o de quita&ccedil;&atilde;o da Taxa de Cadastramento/Implanta&ccedil;&atilde;o, que poder&aacute; ser paga por meio de boleto banc&aacute;rio,transfer&ecirc;ncia banc&aacute;ria ou cart&atilde;o de cr&eacute;dito. A Administradora de Benef&iacute;cios entrar&aacute; em contato para orienta&ccedil;&otilde;es quanto ao pagamento da Taxa de Cadastramento.</p>

								<p>Os Formul&aacute;rios (Proposta de Ades&atilde;o , Carta de Orienta&ccedil;&atilde;o ao Benefici&aacute;rio, Declara&ccedil;&atilde;o de Sa&uacute;de e Aditivo de Car&ecirc;ncia) dever&atilde;o ser preenchidos e assinados, e juntamente com os Documentos Pessoais&nbsp;<strong><u>devem ser encaminhados de duas formas:</u></strong></p>

								<p>1&ordf; - VIA FAX ( 61. 3044-3615) OU E-MAIL (comercial1@prevquali.com.br ) , e<br /> 2&ordf; - PARA O ENDERE&Ccedil;O DA ADMINISTRADORA (vias originais): SCS Qd. 02 Bl C Sala 601, Ed. Cedro II, Asa Sul, Bras&iacute;lia/DF, CEP: 70.302-914</p>

								<p><strong>Prazos:</strong><br />
								<br />
								O(s) plano(s) pretendidos(s) ter&atilde;o in&iacute;cio de cobertura no dia&nbsp; 01/6/2013 , para isso &eacute; necess&aacute;rio que os Formul&aacute;rios e Documentos estejam em posse da Administradora at&eacute; o dia 20/5/2013, caso contr&aacute;rio n&atilde;o ter&atilde;o validade e n&atilde;o ser&atilde;o implantados.</p>

								<p><strong><u>Documentos Pessoais:</u></strong></p>

								<p><u><strong>Titular:</strong>&nbsp;RG/ CPF/ Comprovante de Resid&ecirc;ncia/ Contra-Cheque / Comprovante de filia&ccedil;&atilde;o &agrave; ENTIDADE BENEFICI&Aacute;RIA/ /Comprovante de pagamento da Taxa de Cadastramento .</u></p>

								<p><u><strong>Dependentes:&nbsp;</strong>RG/CPF/ Comprova&ccedil;&atilde;o de parentesco com o Titular (Certid&atilde;o de Casamento e/ou Nascimento)&nbsp;<br />
								<br />
								<strong>PREVQUALI ADMINISTRADORA DE BENEF&Iacute;CIOS&nbsp;</strong><br />
								Telefone: 0800 601 1013 (para os Estados AL,AM,AP,RR,PA,PB,PI,RN,SE e MA) ou 4007 1013 (demais localidades)<br />
								Fax: (61) 3044.3615<br />
								e-mail:&nbsp;<a href="mailto:comercial@prevquali.com.br" style="color: rgb(0, 0, 204); outline: none;">comercial1@prevquali.com.br</a></u></p>
							</div>
						</div>';
				
				//------------------------------ attach arquivos ----------------------------
				$this->loadModel('Anexoemail');
				$this->Anexoemail->recursive = 0;
				$anexosoperadora = $this->Anexoemail->find('all', array('conditions' => array('Anexoemail.operadora_id' => $this->request->data['Cliente']['operadora_id'])));
				
				//pr($anexosoperadora);
				if(sizeof($anexosoperadora) > 0) {
					foreach ($anexosoperadora as $anexo):
						$arquivo = array('filepath' => $anexo['Anexoemail']['arquivopath'], 'filename' => $anexo['Anexoemail']['nome']);
						array_push($anexos, $arquivo);
					endforeach;
				}
				
				//------------------------------ attach contrato -----------------------------
				$arquivo = array('filepath' => 'files/reports/contrato_'.$cliente_id.'.pdf', 'filename' => 'contrato_'.$cliente_id.'.pdf');
				array_push($anexos, $arquivo);
				
				//------------------------------ send emails ----------------------------
				$this->sendEmail($destinatarios, $emailremetente, $assunto, $anexos, $cliente_id, $body);
				
				
				
				//pr("id: ".$cliente_id);
				$this->redirect(array('action' => 'conclusao_adesao', $cliente_id));
				
			} else {
				$this->Session->setFlash(__('A Proposta não foi enviada com sucesso. Por favor, tente novamente.'));
			}
		}
		
		/*$estadocivils = $this->Cliente->Estadocivil->find('list');
		$ufs = $this->Cliente->Uf->find('list');
		$statusservidors = $this->Cliente->Statusservidor->find('list');
		$bancos = $this->Cliente->Banco->find('list');
		$fpagamentos = $this->Cliente->Fpagamento->find('list');
		$corretors = $this->Cliente->Corretor->find('list');
		$operadoras = $this->Cliente->Operadora->find('list');
		$orgaos = $this->Cliente->Orgao->find('list');
		$perfilservidors = $this->Cliente->Perfilservidor->find('list');
		$planosaudes = $this->Cliente->Planosaude->find('list');
	
		$this->set(compact('estadocivils', 'ufs', 'statusservidors', 'bancos', 'corretors', 'operadoras', 'perfilservidors', 'orgaos', 'planosaudes', 'fpagamentos', 'cliente_id'));*/
		$this->layout = 'saude';
		$this->set(compact('cliente_id'));
	}


/**
 * add method
 *
 * @return void
 */
	public function add() {
		if ($this->request->is('post')) {
			$this->Cliente->create();
			if ($this->Cliente->save($this->request->data)) {
				$this->Session->setFlash(__('The cliente has been saved'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The cliente could not be saved. Please, try again.'));
			}
		}
		$estadocivils = $this->Cliente->Estadocivil->find('list');
		$ufs = $this->Cliente->Uf->find('list');
		$statusservidors = $this->Cliente->Statusservidor->find('list');
		$bancos = $this->Cliente->Banco->find('list');
		$fpagamentos = $this->Cliente->Fpagamento->find('list');
		$corretors = $this->Cliente->Corretor->find('list');
		$operadoras = $this->Cliente->Operadora->find('list');
		$orgaos = $this->Cliente->Orgao->find('list');
		$perfilservidors = $this->Cliente->Perfilservidor->find('list');
		$planosaudes = $this->Cliente->Planosaude->find('list');
		
		$this->set(compact('estadocivils', 'ufs', 'statusservidors', 'bancos', 'corretors', 'operadoras', 'perfilservidors', 'orgaos', 'planosaudes', 'fpagamentos'));
	}

/**
 * edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function edit($id = null) {
		$this->Cliente->id = $id;
		if (!$this->Cliente->exists()) {
			throw new NotFoundException(__('Invalid cliente'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Cliente->save($this->request->data)) {
				$this->Session->setFlash(__('The cliente has been saved'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The cliente could not be saved. Please, try again.'));
			}
		} else {
			$this->request->data = $this->Cliente->read(null, $id);
		}
		$estadocivils = $this->Cliente->Estadocivil->find('list');
		$ufs = $this->Cliente->Uf->find('list');
		$statusservidors = $this->Cliente->Statusservidor->find('list');
		$bancos = $this->Cliente->Banco->find('list');
		$fpagamentos = $this->Cliente->Fpagamento->find('list');
		$corretors = $this->Cliente->Corretor->find('list');
		$operadoras = $this->Cliente->Operadora->find('list');
		$orgaos = $this->Cliente->Orgao->find('list');
		$perfilservidors = $this->Cliente->Perfilservidor->find('list');
		$planosaudes = $this->Cliente->Planosaude->find('list');
		$this->set(compact('estadocivils', 'ufs', 'statusservidors', 'bancos', 'corretors', 'operadoras', 'perfilservidors', 'orgaos', 'planosaudes', 'fpagamentos'));
	}

/**
 * delete method
 *
 * @throws MethodNotAllowedException
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function delete($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->Cliente->id = $id;
		if (!$this->Cliente->exists()) {
			throw new NotFoundException(__('Invalid cliente'));
		}
		if ($this->Cliente->delete()) {
			$this->Session->setFlash(__('Cliente deleted'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('Cliente was not deleted'));
		$this->redirect(array('action' => 'index'));
	}
}
